Fix error case in filesystem model
authorBenjamin Otte <otte@redhat.com>
Mon, 29 Mar 2010 14:26:14 +0000 (16:26 +0200)
committerTristan Van Berkom <tristan.van.berkom@gmail.com>
Sun, 4 Apr 2010 00:59:25 +0000 (20:59 -0400)
We should not unref the model here, it might not even exist anymore.
Instead check if it exists and only use it if it does.
The unref was leftover from a previous fix in
ba9f53397ff0b86ad56166c7fc91b4d499f7aefc.

Spotted by Matthias Clasen in
https://bugzilla.gnome.org/show_bug.cgi?id=614099

gtk/gtkfilesystemmodel.c

index 5449d30b590e2c5634f6f03d44c6ccc732402228..b3328e02f9a089eae58d90b843c16a17881d9ba8 100644 (file)
@@ -1199,9 +1199,11 @@ gtk_file_system_model_got_enumerator (GObject *dir, GAsyncResult *res, gpointer
   enumerator = g_file_enumerate_children_finish (G_FILE (dir), res, &error);
   if (enumerator == NULL)
     {
-      g_signal_emit (model, file_system_model_signals[FINISHED_LOADING], 0, error);
-      g_object_unref (model);
-      g_error_free (error);
+      if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+      {
+        g_signal_emit (model, file_system_model_signals[FINISHED_LOADING], 0, error);
+        g_error_free (error);
+      }
     }
   else
     {